#include <stdio.h>
void insertionSort(int arr[], int n) {
    int i, key, j;
    for (i = 1; i < n; i++) {
        key = arr[i];  
        j = i - 1;     
        while (j >= 0 && arr[j] > key) {
            arr[j + 1] = arr[j];  
            j = j - 1;            
        }
        
       
        arr[j + 1] = key;  // 将key插入到正确位置
    }
}
//   arr[]：需要打印的数组
//   n：数组的长度
void printArray(int arr[], int n) {
    int i;
    for (i = 0; i < n; i++) {
        printf("%d ", arr[i]);  // 逐个打印元素
    }
    printf("\n"); 
}

int main() {
    // 测试数组
    int arr[] = {12, 11, 13, 5, 6};
    
    // 计算数组长度
    int n = sizeof(arr) / sizeof(arr[0]);

    printf("原始数组：\n");
    printArray(arr, n);  

    insertionSort(arr, n);  // 调用排序函数

    printf("排序后的数组：\n");
    printArray(arr, n);  // 打印排序结果

    return 0;  
}
